﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AdmLaboratorios.DTO;
using AdmLaboratorios.Business;

namespace AdmLaboratorios
{
    public partial class frmStockAjuste : Form
    {
        public StockDTO Stock { get; set; }

        public frmStockAjuste()
        {
            InitializeComponent();
        }

        private void frmStockAjuste_Load(object sender, EventArgs e)
        {
            cbEstado.Items.Clear();
            cbEstado.Items.Add(eStockEstado.APROBADO.ToString());
            cbEstado.Items.Add(eStockEstado.CUARENTENA.ToString());
            cbEstado.Items.Add(eStockEstado.RECHAZADO.ToString());
            cbEstado.SelectedIndex = 0;
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.Close();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                Stock.NroAnalisis = txNroAnalisis.Text.Trim();
                Stock.Cantidad = FormsHelper.StN(txCantidad.Text);
                Stock.FactorCorreccion = FormsHelper.StN(txCoeficienteCorreccion.Text);
                Stock.Estado = cbEstado.Text;
                Stock.Activo = cbActivo.Checked;

                //Guardo los nuevos valores.
                Business.Stock.Ajuste(Stock, txObservaciones.Text.Trim());

                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }
            catch (Exception ex)
            {
                FormsHelper.MsgErrorInesperado(ex);
            }
        }

        public void LoadStock(StockDTO stock)
        {
            try
            {
                Stock = stock;

                cbActivo.Checked = Stock.Activo;

                txNroAnalisis.Text = Stock.NroAnalisis;
                txPartner.Text = Partners.Get(Stock.IdPartner).ToString();
                txProducto.Text = Productos.Get(Stock.IdProducto).ToString();

                txCantidad.Text = Stock.Cantidad.ToString();
                txCoeficienteCorreccion.Text = Stock.FactorCorreccion.ToString();

                //if (Stock.Cantidad >= nuCantidad.Minimum && Stock.Cantidad <= nuCantidad.Maximum)
                //    nuCantidad.Value = Stock.Cantidad;
                //else
                //    nuCantidad.Value = 0;

                //if (Stock.FactorCorreccion >= nuCoeficienteCorreccion.Minimum && Stock.FactorCorreccion <= nuCoeficienteCorreccion.Maximum)
                //    nuCoeficienteCorreccion.Value = Stock.FactorCorreccion;
                //else
                //    nuCoeficienteCorreccion.Value = 1;

                if (cbEstado.FindString(Stock.Estado.ToUpper()) != -1)
                    cbEstado.SelectedIndex = cbEstado.FindString(Stock.Estado.ToUpper());
            }
            catch (Exception ex)
            {
                FormsHelper.MsgErrorInesperado(ex);
            }
        }

        private void txCantidad_Validating(object sender, CancelEventArgs e)
        {
            txCantidad.Text = Math.Round(FormsHelper.StN(txCantidad.Text), 4).ToString();
        }

        private void txCoeficienteCorreccion_Validating(object sender, CancelEventArgs e)
        {
            txCoeficienteCorreccion.Text = Math.Round(FormsHelper.StN(txCoeficienteCorreccion.Text), 4).ToString();
        }
    }
}
